---
title: UC4Service
summary: The UC4 job-invocation service class exposing eight job-execution operations to SOAP callers.
status: draft
owner: SAIF Doc Gen
last_reviewed: 2026-09-22
---

# UC4Service

`SAIF.Services.WCF.UC4.Host.Services.UC4Service` is the sole service class registered by this host, reached through the single `UC4` route. It exposes eight operations — four job-invocation forms (no parameters, JSON string, positional values, key/value pairs) crossed with two identity modes (`UC4Environment` enum, `short` client id) — that gate a caller-supplied job name against an allow/deny rule list and forward allowed jobs to a downstream UC4 scheduling service.

| Field | Value |
| --- | --- |
| **Service class** | `SAIF.Services.WCF.UC4.Host.Services.UC4Service` |
| **Declared contract** | `IUC4Service` — external (`SAIF.Services.WCF.Contracts`, assembly identity not resolvable)* |
| **Route** | `UC4` |
| **Source** | `src/WCF/SAIF.Services.WCF.UC4.Host/UC4Service.cs` |
| **Service attributes** | `[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]`, `[LogErrorBehavior]` (external `IServiceBehavior`) |
| **Instancing / concurrency** | Not declared — WCF defaults (`PerSession` / `Single`) |
| **Binding** | Not configured; `ServiceHostFactory` applies WCF protocol mapping, which maps `http` to `basicHttpBinding` by default* |
| **Class-level authorization** | None in code |
| **Error handling** | `[LogErrorBehavior]` applied — contributes logging, not fault shaping; see [Faults and error pipeline](../faults.md) |
| **Operations** | 8 (4 marked `[Obsolete]`) |
| **Also hosted in** | — registered by exactly one host, on exactly one route name, in exactly one solution |

The contract interface `IUC4Service` is not declared anywhere in this repository. Every operation section below is therefore derived from the public members of this class, not from the contract interface; the caveat is stated once here and not repeated per operation.

---

## ExecuteJob

*(Obsolete)* Invokes a job identified by a `UC4Environment` enum value with no caller-supplied parameters, by converting the enum to a client id and delegating to `ExecuteJobWithClientId`.

| Field | Value |
| --- | --- |
| **Operation name** | `ExecuteJob` |
| **Contract name** | Not observable — contract assembly is external |
| **SOAP action** | Not observable — contract assembly is external |
| **Implementing member** | `UC4Service.ExecuteJob` (`src/WCF/SAIF.Services.WCF.UC4.Host/UC4Service.cs:139`) |
| **Pattern** | Request/response |
| **Binding** | `basicHttpBinding` (WCF protocol-mapping default)* |
| **Obsolete** | Yes — `[Obsolete("The Enums for Enviroments is not kept up to date, please use method that takes in number for clientID")]` (`UC4Service.cs:138`) |
| **Authorization** | [None in code](../authentication-authorization.md#access-requirements-per-operation) |
| **Process** | [OP-001](../operations/execute-job.md) |

### ExecuteJob input message

| Part | Type | Required | Default | Purpose |
| --- | --- | --- | --- | --- |
| `environment` | `SAIF.Core.Contracts.UC4.UC4Environment`* | Not observable — external contract** | — | Selects the environment; converted internally to a `short` client id |
| `jobName` | `string` | Not observable — external contract** | — | The job to invoke |

### ExecuteJob output message

| Field | Value |
| --- | --- |
| **Return type** | `UC4Result` (`SAIF.Core.Contracts.UC4`)* |
| **Meaning** | The mapped downstream result on success; a default-constructed `UC4Result` when the job is blocked |
| **Empty-result behavior** | A blocked job returns `new UC4Result()` and discards the explanatory message — [BR-UC4-005](../business-rules.md#br-uc4-005-blocked-job-returns-empty-result-with-no-explanation) |

### ExecuteJob faults

| Fault | Declared in host source | Raised when | Surfaced as | Detail crosses the boundary |
| --- | --- | --- | --- | --- |
| Unmapped enum value | No fault metadata visible locally** | `UC4EnvironmentFactory.GetUC4ClientId(environment)` throws for an unmapped value** | Generic SOAP fault produced by the framework | Yes — `includeExceptionDetailInFaults="true"` |
| Delegated failures | No fault metadata visible locally** | Any failure mode of `ExecuteJobWithClientId` | Generic SOAP fault produced by the framework | Yes |

Whether `IUC4Service` declares a `[FaultContract]` for any of these faults is Not observable — external contract**; the host source only shows that no `FaultException` is constructed locally. See [Faults and error pipeline](../faults.md).

### ExecuteJob side effects

| Aspect | Finding |
| --- | --- |
| Records written | None locally — the downstream service may write job-execution state, out of scope |
| Downstream calls | `UC4Client.ScheduleJob` (via delegation to `ExecuteJobWithClientId`) |
| Shared state touched | None |
| Repeat-call behavior | Not idempotent from the host's perspective — each call forwards a new job-execution request to the downstream scheduler |

---

## ExecuteJobWithClientId

Invokes a job identified by a `short` client id with no caller-supplied parameters (forwarded as an empty value array).

| Field | Value |
| --- | --- |
| **Operation name** | `ExecuteJobWithClientId` |
| **Contract name** | Not observable — contract assembly is external |
| **SOAP action** | Not observable — contract assembly is external |
| **Implementing member** | `UC4Service.ExecuteJobWithClientId` (`src/WCF/SAIF.Services.WCF.UC4.Host/UC4Service.cs:145`) |
| **Pattern** | Request/response |
| **Binding** | `basicHttpBinding` (WCF protocol-mapping default)* |
| **Obsolete** | No |
| **Authorization** | [None in code](../authentication-authorization.md#access-requirements-per-operation) |
| **Process** | [OP-002](../operations/execute-job-with-client-id.md) |

### ExecuteJobWithClientId input message

| Part | Type | Required | Default | Purpose |
| --- | --- | --- | --- | --- |
| `environment` | `short` | Not observable — external contract** | — | The client id identifying the environment |
| `jobName` | `string` | Not observable — external contract** | — | The job to invoke |

### ExecuteJobWithClientId output message

| Field | Value |
| --- | --- |
| **Return type** | `UC4Result`* |
| **Meaning** | The mapped downstream result on success; a default-constructed `UC4Result` when the job is blocked |
| **Empty-result behavior** | [BR-UC4-005](../business-rules.md#br-uc4-005-blocked-job-returns-empty-result-with-no-explanation) |

### ExecuteJobWithClientId faults

| Fault | Declared in host source | Raised when | Surfaced as | Detail crosses the boundary |
| --- | --- | --- | --- | --- |
| Delegated failures | No fault metadata visible locally** | Any failure mode of `ExecuteJobWithValuesAndClientId` (delegates with an empty value array) | Generic SOAP fault produced by the framework | Yes |

Whether `IUC4Service` declares a `[FaultContract]` for any of these faults is Not observable — external contract**; the host source only shows that no `FaultException` is constructed locally. See [Faults and error pipeline](../faults.md).

### ExecuteJobWithClientId side effects

| Aspect | Finding |
| --- | --- |
| Records written | None locally |
| Downstream calls | `UC4Client.ScheduleJob` (via delegation to `ExecuteJobWithValuesAndClientId`) |
| Shared state touched | None |
| Repeat-call behavior | Not idempotent from the host's perspective |

---

## ExecuteJobWithJson

*(Obsolete)* Invokes a job identified by a `UC4Environment` enum value with parameters supplied as a JSON-encoded string.

| Field | Value |
| --- | --- |
| **Operation name** | `ExecuteJobWithJson` |
| **Contract name** | Not observable — contract assembly is external |
| **SOAP action** | Not observable — contract assembly is external |
| **Implementing member** | `UC4Service.ExecuteJobWithJson` (`src/WCF/SAIF.Services.WCF.UC4.Host/UC4Service.cs:152`) |
| **Pattern** | Request/response |
| **Binding** | `basicHttpBinding` (WCF protocol-mapping default)* |
| **Obsolete** | Yes — `[Obsolete("The Enums for Enviroments is not kept up to date, please use method that takes in number for clientID")]` (`UC4Service.cs:151`) |
| **Authorization** | [None in code](../authentication-authorization.md#access-requirements-per-operation) |
| **Process** | [OP-003](../operations/execute-job-with-json.md) |

### ExecuteJobWithJson input message

| Part | Type | Required | Default | Purpose |
| --- | --- | --- | --- | --- |
| `environment` | `UC4Environment`* | Not observable — external contract** | — | Selects the environment; converted internally to a client id |
| `jobName` | `string` | Not observable — external contract** | — | The job to invoke |
| `jsonKeyValuePairs` | `string` | Not observable — external contract** | — | Job parameters as a single JSON-encoded `KeyValuePair<string,string>[]`; bounded by `maxStringContentLength = 5242880` |

### ExecuteJobWithJson output message

| Field | Value |
| --- | --- |
| **Return type** | `UC4Result`* |
| **Meaning** | The mapped downstream result on success; a default-constructed `UC4Result` when the job is blocked |
| **Empty-result behavior** | [BR-UC4-005](../business-rules.md#br-uc4-005-blocked-job-returns-empty-result-with-no-explanation) |

### ExecuteJobWithJson faults

| Fault | Declared in host source | Raised when | Surfaced as | Detail crosses the boundary |
| --- | --- | --- | --- | --- |
| JSON deserialization failure | No fault metadata visible locally** | `JsonConvert.DeserializeObject` fails on malformed `jsonKeyValuePairs`, parsed **before** the allow/deny gate — [BR-UC4-013](../business-rules.md#br-uc4-013-json-parameters-parsed-before-the-allow-deny-gate) | Generic SOAP fault produced by the framework | Yes |
| Delegated failures | No fault metadata visible locally** | Any failure mode of `ExecuteJobWithJsonAndClientId` | Generic SOAP fault produced by the framework | Yes |

Whether `IUC4Service` declares a `[FaultContract]` for any of these faults is Not observable — external contract**; the host source only shows that no `FaultException` is constructed locally. See [Faults and error pipeline](../faults.md).

### ExecuteJobWithJson side effects

| Aspect | Finding |
| --- | --- |
| Records written | None locally |
| Downstream calls | `UC4Client.ScheduleJob` (via delegation to `ExecuteJobWithJsonAndClientId`) |
| Shared state touched | None |
| Repeat-call behavior | Not idempotent from the host's perspective |

---

## ExecuteJobWithJsonAndClientId

Invokes a job identified by a `short` client id with parameters supplied as a JSON-encoded string.

| Field | Value |
| --- | --- |
| **Operation name** | `ExecuteJobWithJsonAndClientId` |
| **Contract name** | Not observable — contract assembly is external |
| **SOAP action** | Not observable — contract assembly is external |
| **Implementing member** | `UC4Service.ExecuteJobWithJsonAndClientId` (`src/WCF/SAIF.Services.WCF.UC4.Host/UC4Service.cs:159`) |
| **Pattern** | Request/response |
| **Binding** | `basicHttpBinding` (WCF protocol-mapping default)* |
| **Obsolete** | No |
| **Authorization** | [None in code](../authentication-authorization.md#access-requirements-per-operation) |
| **Process** | [OP-004](../operations/execute-job-with-json-and-client-id.md) |

### ExecuteJobWithJsonAndClientId input message

| Part | Type | Required | Default | Purpose |
| --- | --- | --- | --- | --- |
| `environment` | `short` | Not observable — external contract** | — | The client id identifying the environment |
| `jobName` | `string` | Not observable — external contract** | — | The job to invoke |
| `jsonKeyValuePairs` | `string` | Not observable — external contract** | — | Job parameters as a single JSON-encoded `KeyValuePair<string,string>[]`; bounded by `maxStringContentLength = 5242880` |

### ExecuteJobWithJsonAndClientId output message

| Field | Value |
| --- | --- |
| **Return type** | `UC4Result`* |
| **Meaning** | The mapped downstream result on success; a default-constructed `UC4Result` when the job is blocked |
| **Empty-result behavior** | [BR-UC4-005](../business-rules.md#br-uc4-005-blocked-job-returns-empty-result-with-no-explanation) |

### ExecuteJobWithJsonAndClientId faults

| Fault | Declared in host source | Raised when | Surfaced as | Detail crosses the boundary |
| --- | --- | --- | --- | --- |
| `jobName` null | No fault metadata visible locally** | `Enforce.ArgumentNotNull(jobName, "jobName")` — [BR-UC4-004](../business-rules.md#br-uc4-004-job-name-must-not-be-null) | Generic SOAP fault produced by the framework | Yes |
| JSON deserialization failure | No fault metadata visible locally** | `JsonConvert.DeserializeObject` fails on malformed `jsonKeyValuePairs`, parsed **before** the allow/deny gate — [BR-UC4-013](../business-rules.md#br-uc4-013-json-parameters-parsed-before-the-allow-deny-gate) | Generic SOAP fault produced by the framework | Yes |
| Rule document missing/malformed | No fault metadata visible locally** | `rules.UC4Rules.Environments` dereferenced unguarded* | Generic SOAP fault produced by the framework | Yes |
| Downstream failure | No fault metadata visible locally** | Any exception constructing `UC4Client` or calling the downstream service | Generic SOAP fault produced by the framework | Yes |

Whether `IUC4Service` declares a `[FaultContract]` for any of these faults is Not observable — external contract**; the host source only shows that no `FaultException` is constructed locally. See [Faults and error pipeline](../faults.md).

### ExecuteJobWithJsonAndClientId side effects

| Aspect | Finding |
| --- | --- |
| Records written | None locally |
| Downstream calls | `UC4Client.ScheduleJob` |
| Shared state touched | None |
| Repeat-call behavior | Not idempotent from the host's perspective |

---

## ExecuteJobWithValues

*(Obsolete)* Invokes a job identified by a `UC4Environment` enum value with parameters supplied as an ordered list of positional values.

| Field | Value |
| --- | --- |
| **Operation name** | `ExecuteJobWithValues` |
| **Contract name** | Not observable — contract assembly is external |
| **SOAP action** | Not observable — contract assembly is external |
| **Implementing member** | `UC4Service.ExecuteJobWithValues` (`src/WCF/SAIF.Services.WCF.UC4.Host/UC4Service.cs:180`) |
| **Pattern** | Request/response |
| **Binding** | `basicHttpBinding` (WCF protocol-mapping default)* |
| **Obsolete** | Yes — `[Obsolete("The Enums for Enviroments is not kept up to date, please use method that takes in number for clientID")]` (`UC4Service.cs:179`) |
| **Authorization** | [None in code](../authentication-authorization.md#access-requirements-per-operation) |
| **Process** | [OP-005](../operations/execute-job-with-values.md) |

### ExecuteJobWithValues input message

| Part | Type | Required | Default | Purpose |
| --- | --- | --- | --- | --- |
| `environment` | `UC4Environment`* | Not observable — external contract** | — | Selects the environment; converted internally to a client id |
| `jobName` | `string` | Not observable — external contract** | — | The job to invoke |
| `values` | `params string[]` | Not observable — external contract** | Empty array | Positional parameters, named `arg1`, `arg2`, and each subsequent positional argument name before forwarding — [BR-UC4-009](../business-rules.md#br-uc4-009-positional-values-are-named-arg1-arg2) |

### ExecuteJobWithValues output message

| Field | Value |
| --- | --- |
| **Return type** | `UC4Result`* |
| **Meaning** | The mapped downstream result on success; a default-constructed `UC4Result` when the job is blocked |
| **Empty-result behavior** | [BR-UC4-005](../business-rules.md#br-uc4-005-blocked-job-returns-empty-result-with-no-explanation) |

### ExecuteJobWithValues faults

| Fault | Declared in host source | Raised when | Surfaced as | Detail crosses the boundary |
| --- | --- | --- | --- | --- |
| Delegated failures | No fault metadata visible locally** | Any failure mode of `ExecuteJobWithValuesAndClientId` | Generic SOAP fault produced by the framework | Yes |

Whether `IUC4Service` declares a `[FaultContract]` for any of these faults is Not observable — external contract**; the host source only shows that no `FaultException` is constructed locally. See [Faults and error pipeline](../faults.md).

### ExecuteJobWithValues side effects

| Aspect | Finding |
| --- | --- |
| Records written | None locally |
| Downstream calls | `UC4Client.ScheduleJob` (via delegation to `ExecuteJobWithValuesAndClientId`) |
| Shared state touched | None |
| Repeat-call behavior | Not idempotent from the host's perspective |

---

## ExecuteJobWithValuesAndClientId

Invokes a job identified by a `short` client id with parameters supplied as an ordered list of positional values. This is the canonical operation flow — see [Operations and processes](../operations-processes.md).

| Field | Value |
| --- | --- |
| **Operation name** | `ExecuteJobWithValuesAndClientId` |
| **Contract name** | Not observable — contract assembly is external |
| **SOAP action** | Not observable — contract assembly is external |
| **Implementing member** | `UC4Service.ExecuteJobWithValuesAndClientId` (`src/WCF/SAIF.Services.WCF.UC4.Host/UC4Service.cs:186`) |
| **Pattern** | Request/response |
| **Binding** | `basicHttpBinding` (WCF protocol-mapping default)* |
| **Obsolete** | No |
| **Authorization** | [None in code](../authentication-authorization.md#access-requirements-per-operation) |
| **Process** | [OP-006](../operations/execute-job-with-values-and-client-id.md) |

### ExecuteJobWithValuesAndClientId input message

| Part | Type | Required | Default | Purpose |
| --- | --- | --- | --- | --- |
| `environment` | `short` | Not observable — external contract** | — | The client id identifying the environment |
| `jobName` | `string` | Not observable — external contract** | — | The job to invoke |
| `values` | `params string[]` | Not observable — external contract** | Empty array | Positional parameters, named `arg1`, `arg2`, and each subsequent positional argument name before forwarding — [BR-UC4-009](../business-rules.md#br-uc4-009-positional-values-are-named-arg1-arg2) |

### ExecuteJobWithValuesAndClientId output message

| Field | Value |
| --- | --- |
| **Return type** | `UC4Result`* |
| **Meaning** | The mapped downstream result on success; a default-constructed `UC4Result` when the job is blocked |
| **Empty-result behavior** | [BR-UC4-005](../business-rules.md#br-uc4-005-blocked-job-returns-empty-result-with-no-explanation) |

### ExecuteJobWithValuesAndClientId faults

| Fault | Declared in host source | Raised when | Surfaced as | Detail crosses the boundary |
| --- | --- | --- | --- | --- |
| `jobName` null | No fault metadata visible locally** | `Enforce.ArgumentNotNull(jobName, "jobName")` — [BR-UC4-004](../business-rules.md#br-uc4-004-job-name-must-not-be-null) | Generic SOAP fault produced by the framework | Yes |
| Rule document missing/malformed | No fault metadata visible locally** | `rules.UC4Rules.Environments` dereferenced unguarded* | Generic SOAP fault produced by the framework | Yes |
| Downstream failure | No fault metadata visible locally** | Any exception constructing `UC4Client` or calling the downstream service | Generic SOAP fault produced by the framework | Yes |

Whether `IUC4Service` declares a `[FaultContract]` for any of these faults is Not observable — external contract**; the host source only shows that no `FaultException` is constructed locally. See [Faults and error pipeline](../faults.md).

### ExecuteJobWithValuesAndClientId side effects

| Aspect | Finding |
| --- | --- |
| Records written | None locally |
| Downstream calls | `UC4Client.ScheduleJob` |
| Shared state touched | None |
| Repeat-call behavior | Not idempotent from the host's perspective |

---

## ExecuteJobWithParameters

*(Obsolete)* Invokes a job identified by a `UC4Environment` enum value with parameters supplied as key/value pairs, forwarded unmodified.

| Field | Value |
| --- | --- |
| **Operation name** | `ExecuteJobWithParameters` |
| **Contract name** | Not observable — contract assembly is external |
| **SOAP action** | Not observable — contract assembly is external |
| **Implementing member** | `UC4Service.ExecuteJobWithParameters` (`src/WCF/SAIF.Services.WCF.UC4.Host/UC4Service.cs:200`) |
| **Pattern** | Request/response |
| **Binding** | `basicHttpBinding` (WCF protocol-mapping default)* |
| **Obsolete** | Yes — `[Obsolete("The Enums for Enviroments is not kept up to date, please use method that takes in number for clientID")]` (`UC4Service.cs:199`) |
| **Authorization** | [None in code](../authentication-authorization.md#access-requirements-per-operation) |
| **Process** | [OP-007](../operations/execute-job-with-parameters.md) |

### ExecuteJobWithParameters input message

| Part | Type | Required | Default | Purpose |
| --- | --- | --- | --- | --- |
| `environment` | `UC4Environment`* | Not observable — external contract** | — | Selects the environment; converted internally to a client id |
| `jobName` | `string` | Not observable — external contract** | — | The job to invoke |
| `parameters` | `IEnumerable<KeyValuePair<string,string>>` | Not observable — external contract** | — | Named job parameters, forwarded to the downstream service without inspection |

### ExecuteJobWithParameters output message

| Field | Value |
| --- | --- |
| **Return type** | `UC4Result`* |
| **Meaning** | The mapped downstream result on success; a default-constructed `UC4Result` when the job is blocked |
| **Empty-result behavior** | [BR-UC4-005](../business-rules.md#br-uc4-005-blocked-job-returns-empty-result-with-no-explanation) |

### ExecuteJobWithParameters faults

| Fault | Declared in host source | Raised when | Surfaced as | Detail crosses the boundary |
| --- | --- | --- | --- | --- |
| Delegated failures | No fault metadata visible locally** | Any failure mode of `ExecuteJobWithParametersAndClientId` | Generic SOAP fault produced by the framework | Yes |

Whether `IUC4Service` declares a `[FaultContract]` for any of these faults is Not observable — external contract**; the host source only shows that no `FaultException` is constructed locally. See [Faults and error pipeline](../faults.md).

### ExecuteJobWithParameters side effects

| Aspect | Finding |
| --- | --- |
| Records written | None locally |
| Downstream calls | `UC4Client.ScheduleJob` (via delegation to `ExecuteJobWithParametersAndClientId`) |
| Shared state touched | None |
| Repeat-call behavior | Not idempotent from the host's perspective |

---

## ExecuteJobWithParametersAndClientId

Invokes a job identified by a `short` client id with parameters supplied as key/value pairs, forwarded unmodified (no positional naming step, unlike the `values` forms).

| Field | Value |
| --- | --- |
| **Operation name** | `ExecuteJobWithParametersAndClientId` |
| **Contract name** | Not observable — contract assembly is external |
| **SOAP action** | Not observable — contract assembly is external |
| **Implementing member** | `UC4Service.ExecuteJobWithParametersAndClientId` (`src/WCF/SAIF.Services.WCF.UC4.Host/UC4Service.cs:206`) |
| **Pattern** | Request/response |
| **Binding** | `basicHttpBinding` (WCF protocol-mapping default)* |
| **Obsolete** | No |
| **Authorization** | [None in code](../authentication-authorization.md#access-requirements-per-operation) |
| **Process** | [OP-008](../operations/execute-job-with-parameters-and-client-id.md) |

### ExecuteJobWithParametersAndClientId input message

| Part | Type | Required | Default | Purpose |
| --- | --- | --- | --- | --- |
| `environment` | `short` | Not observable — external contract** | — | The client id identifying the environment |
| `jobName` | `string` | Not observable — external contract** | — | The job to invoke |
| `parameters` | `IEnumerable<KeyValuePair<string,string>>` | Not observable — external contract** | — | Named job parameters, forwarded to the downstream service without inspection |

### ExecuteJobWithParametersAndClientId output message

| Field | Value |
| --- | --- |
| **Return type** | `UC4Result`* |
| **Meaning** | The mapped downstream result on success; a default-constructed `UC4Result` when the job is blocked |
| **Empty-result behavior** | [BR-UC4-005](../business-rules.md#br-uc4-005-blocked-job-returns-empty-result-with-no-explanation) |

### ExecuteJobWithParametersAndClientId faults

| Fault | Declared in host source | Raised when | Surfaced as | Detail crosses the boundary |
| --- | --- | --- | --- | --- |
| `jobName` null | No fault metadata visible locally** | `Enforce.ArgumentNotNull(jobName, "jobName")` — [BR-UC4-004](../business-rules.md#br-uc4-004-job-name-must-not-be-null) | Generic SOAP fault produced by the framework | Yes |
| Rule document missing/malformed | No fault metadata visible locally** | `rules.UC4Rules.Environments` dereferenced unguarded* | Generic SOAP fault produced by the framework | Yes |
| Downstream failure | No fault metadata visible locally** | Any exception constructing `UC4Client` or calling the downstream service | Generic SOAP fault produced by the framework | Yes |

Whether `IUC4Service` declares a `[FaultContract]` for any of these faults is Not observable — external contract**; the host source only shows that no `FaultException` is constructed locally. See [Faults and error pipeline](../faults.md).

### ExecuteJobWithParametersAndClientId side effects

| Aspect | Finding |
| --- | --- |
| Records written | None locally |
| Downstream calls | `UC4Client.ScheduleJob` |
| Shared state touched | None |
| Repeat-call behavior | Not idempotent from the host's perspective |

---

## Coverage checklist

| Public member | Documented section | Pattern |
| --- | --- | --- |
| `UC4Result ExecuteJob(UC4Environment environment, string jobName)` | [`ExecuteJob`](#executejob) | Request/response |
| `UC4Result ExecuteJobWithClientId(short environment, string jobName)` | [`ExecuteJobWithClientId`](#executejobwithclientid) | Request/response |
| `UC4Result ExecuteJobWithJson(UC4Environment environment, string jobName, string jsonKeyValuePairs)` | [`ExecuteJobWithJson`](#executejobwithjson) | Request/response |
| `UC4Result ExecuteJobWithJsonAndClientId(short environment, string jobName, string jsonKeyValuePairs)` | [`ExecuteJobWithJsonAndClientId`](#executejobwithjsonandclientid) | Request/response |
| `UC4Result ExecuteJobWithValues(UC4Environment environment, string jobName, params string[] values)` | [`ExecuteJobWithValues`](#executejobwithvalues) | Request/response |
| `UC4Result ExecuteJobWithValuesAndClientId(short environment, string jobName, params string[] values)` | [`ExecuteJobWithValuesAndClientId`](#executejobwithvaluesandclientid) | Request/response |
| `UC4Result ExecuteJobWithParameters(UC4Environment environment, string jobName, IEnumerable<KeyValuePair<string,string>> parameters)` | [`ExecuteJobWithParameters`](#executejobwithparameters) | Request/response |
| `UC4Result ExecuteJobWithParametersAndClientId(short environment, string jobName, IEnumerable<KeyValuePair<string,string>> parameters)` | [`ExecuteJobWithParametersAndClientId`](#executejobwithparametersandclientid) | Request/response |

Non-operation public members (`UC4Service()`, `UC4Service(IEnvironmentService)`, `Dispose()`, `ERR_JOB_NOT_ALLOWED`, `ERR_JOB_NAME_INVALID`, `ERR_PARAMETER_NAME_INVALID`, `APP_NAME`) are excluded — see [Overview](../overview.md) and [Tech debt](../tech-debt.md) for the constants that are never actually returned to a caller.

## Related documentation
- [Index](../index.md)
- [Overview](../overview.md)
- [Architecture](../architecture.md)
- [Activation and hosting](../activation-hosting.md)
- [Operations](../operations.md)
- [Faults and error pipeline](../faults.md)
- [Authentication and authorization](../authentication-authorization.md)
- [Dependencies](../dependencies.md)
- [Configuration](../configuration.md)
- [Operations and processes](../operations-processes.md)
- [Business rules](../business-rules.md)
- [Operational runbook](../operational-runbook.md)
- [Tech debt](../tech-debt.md)

> **Note:** Statements marked with `*` were inferred from code structure, naming
> conventions, or contextual evidence where direct confirmation was not available
> in source artifacts. Statements marked with `**` could not be confirmed; treat
> as unknown until verified.

## Sources
- `src/WCF/SAIF.Services.WCF.UC4.Host/UC4Service.cs`
- `src/WCF/SAIF.Services.WCF.UC4.Host/Uc4Client.cs`
- `src/WCF/SAIF.Services.WCF.UC4.Host/Web.config`
